متغیرها ( Variables ) قسمت اول
 
آموزش ساخت بازی سه بعدی به زبان Basic با دارک بیسیک Dark Basic
تهیه و آموزش نرم افزار دارک بیسیک
 
 
چهار شنبه 21 فروردين 1392برچسب:, :: 5:14 ::  نويسنده : ابوالفضل

 متغیر ها مکان هایی از حافظه موقت ( Ram ) هستند که هر کدام یک عدد و یا عبارت را برای ما نگه می دارند ، هر کدام را با یک نام ایجاد می کنیم . می توانیم مقدار درون آن ها را هر لحظه که خواستیم ، تغییر دهیم . تمامی زبانهای برنامه نویسی از متغیر ها برای محاسبات استفاده می کنند .

 

متغیر واقعا چیست و کجا است و به چه دردی می خورد ؟

زمانی که متغیری ایجاد می کنیم ، قسمت کوچکی از حافظه ی Ram کامپیوتر با نام همان متغیری که ایجاد کرده ایم ، اختصاص پیدا می کند ، تا بتواند اعداد و عبارات مورد نظرمان را برای محاسبات ، داخل آنها نگه داریم . اندازه ی مکان اشغال شده بستگی به نوع متغیری است که تعریف می کنیم .

 

هدف از ایجاد متغیر و استفاده از آن :

همه ی ما در طول زندگی از واحد هایی متشکل از اعداد و عبارات استفاده می کنیم و آن ها را بصورت مقادیری مشخص ، بکار می بریم . مثلا موقع خریدن میوه از فروشنده تقاضای 3 کیلو سیب می کنیم و یا می خواهیم 7 ساعت بعد به سر کار بریم و یا 5.2 متر پارچه بخیرم . همانطور که می دانید ما نمی توانیم بگوییم که همیشه باید فقط سه کیلو سیب بخریم یا همیشه باید 5.2 متر پارچه بخریم چون نیاز ما در هر زمان تغییر می کند . پس مقدار میوه ای که باید هر روز بخریم مانند یک عدد ثابت نیست بلکه متغیر است یعنی هر روز مقدار نیازمان متفاوت از روز قبل است . علت اینکه به این واحد اشغال شده در کامپیوتر ، متغیر می گویند نیز همین است . چون می توانیم در هر زمان مقدار آن ها را تغییر دهیم .

 

توجه ! اعداد و عبارات موجود در متغیر ها تنها در همین برنامه ی DarkBasic قابل استفاده ، دسترسی و تغییر می باشند . یعنی سایر برنامه ها نمی توانند از وجود یا مقدار درون متغییر های ایجاد شده اطلاع پیدا کنند .

 

انواع داده ای متغیر ها ( Data Types ) :

در برنامه ی DarkBasic می توانیم تعداد زیادی متغیر با انواع و گنجایش های متفاوتی ایجاد کنیم . جدول زیر انواع متغیرها و محدوده ی ( گنجایش ) هر کدام را نشان می دهد .

 

 جدول متغیر ها :

 

محدوده ( گنجایش )    نوع متغیر

INTEGER      -2,147,483,648   To   2,147,483,647

(REAL       3.4 E +/- 38 ( 7 Digits

BOOLEAN      0   To   1

BYTE     0   To   255

WORD 0   To   65535

DWORD 0   To   4,294,967,295

DOUBLE INTEGER -9,223,372,036,854,775,808   To   9,223,372,036,854,775,807

 ( DOUBLE FLOAT    1.7 E +/- 38 ( 15 Digits

String 2 Million Character

 

چگونگی ایجاد متغیر :

برای ایجاد متغیر که به معنای شناساندن آن به DarkBasic می باشد ، از دستورالعمل زیر استفاده می کنیم :

 

VariableName As Type

 

طبق این دستورالعمل به جای عبارت VariableName نام متغیری را که می خواهیم ایجاد کنیم قرار می دهیم . دستور  As جزء دستورات کلیدی DarkBasic می باشد که باید حتما نوشته شود . سپس به جای عبارت Type نوع متغیری را که می خواهیم تعریف کنیم از جدول بالا انتخاب و تایپ می کنیم ( بغیر از REAL ) . به مثال زیر توجه کنید .

 

worAdad As Word

 

در این مثال متغیری با نام worAdad از نوع Word ایجاد و معرفی کردیم . یعنی عبارت As Word به DarkBasic می گوید که متغیری با نام worAdad از نوع Word که گنجایش آن طبق جدول متغیر ها بین محدوده ی 0 تا 65535 می باشد در حافظه موقت Ram ایجاد شود .

 

ما می توانیم به جای نام worAdad ، هر عبارتی را که مناسب می دانیم بکار ببریم . البته بغیر از کلمات رزرو شده در برنامه ی DarkBasic . یعنی دارک بیسیک به تعدادی از کلمات حساسیت دارد چون خود باید از آن کلمات بعنوان دستور در برنامه استفاده کند . باید دقت کنیم که در تمام طول برنامه از متغیر و یا اسامی ای به غیر از دستورات رزرو شده توسط DarkBasic استفاده کنیم تا متغیر ها با دستورات اصلی تداخل پیدا نکنند . مثلا چون کلمه ی Print جزء دستورات اصلی DarkBasic است ما به جای استفاده از این کلمه ( به عنوان نام متغیر یا هر چیز دیگری ) می توانیم از کلمه ی worPrint استفاده کنیم چون سه حرف اول آن یعنی wor برای ما تداعی کننده ی نوع Word بودن آن متغیر می باشد . و یا مثل IntPrint

 

در مجموع متغیر ها به سه دسته ی اصلی تقسیم می شوند  . که عبارتند از

 

1 - متغیر از نوع عدد طبیعی (  Integer Number )

این نوع متغیر ، اعداد طبیعی را در خود نگه می دارد ، نه اعداد دارای اعشار ( ممیز دار ) . برای منفی کردن اعداد طبیعی ، کافیست علامت – را قبل از آن ها درج کنیم تا منفی حساب شود . اعداد زیر نمونه هایی از اعداد طبیعی هستند که در این نوع متغیر ذخیره می شوند :

 

0

42

10000

-233000

-100

 

2 - متغیر از نوع عدد صحیح (  Real Number )

این نوع متغیر ، هم می تواند اعداد طبیعی بدون ممیز را در خود نگه دارد و هم اعداد صحیح اعشاری ( ممیز دار ) را . برای منفی کردن عدد صحیح کافیست علامت – را قبل از آن درج کنیم تا منفی حساب شود . اعداد زیر نمونه هایی از اعداد صحیح ( ممیزدار یا بدون ممیز ) هستند که در این نوع متغیر ذخیره می شوند :

 

20.0005

99.9

0

-5000.12

1000

 

3 - متغیر از نوع رشته ای ( String )

متغیر از نوع String برای ذخیره داده های کاراکتری استفاده می شود . در واقع عدد نیست . یعنی کاراکتر ها شامل حروف ، اعداد ، و علائم  و ... می با شند . مانند نمونه های زیر :

 

"A"

"Hello World"

"Telephone"

""

"I am 99 years old     "

"1.2.3.4.5"

 

همانطور که می بینید برای مقدار دهی به متغیر از نوع رشته ( کاراکتری یا همان String ) باید عباراتمان را داخل دو علامت هم شکل ( " ) به نام کوتیشن قرار دهیم تا تفاوت آن با عدد مشخص شود . یعنی عبارت بین این دو علامت مقدار داخل متغیر را معلوم می کند و علامات " و " فقط نوشته می شوند .

 

توجه ! متغیر از نوع String می تواند مقدار خالی ( تهی ) را هم در خود نگه دارد . مانند مثال زیر :

 

""=$Name

 

همانطور که می بینید چیزی داخل علامات "" ننوشتیم ، یعنی متغیر فقط ایجاد شد و داخل آن خالیست .

 

توجه ! اگر دقت کرده باشید . ما اصلا درباره ی گنجایش متغیر از نوع String صحبتی نکردیم . دلیل آن این است که این نوع از متغیر دارای گنجایشی تغییر پذیر می باشد . یعنی هر مقدار عبارت داخل آن بزرگ باشد ، گنجایش آن بطور خودکار زیاد می شود و لازم نیست محدوده ای برای آن تعریف کنیم .

 

راهی ساده تر برای ایجاد متغیر ها :

به عبارت زیر توجه کنید .

 

Adad = 4

 

عبارت Adad = 4 در DarkBasic به این معناست که ما متغیری با نام Adad ایجاد کردیم و مقدار 4 را توسط نماد = به آن اختصاص دادیم . ولی چون نوع متغیر را مشخص نکردیم ، DarkBasic بطور خودکار آن را Integer در نظر میگیرد . یعنی طبق جدول متغیر ها ، متغیر ایجاد شده با نام Adad دارای محدوه ای بین 2147483648- تا 2147483647 می باشد . به عبارتی دیگر عددی که در این متغیر ذخیره خواهد شد ، که در این محدوده باشد . یعنی نه کمتر از 2147483648- و نه بزرگ تر از 2147483647 باشد . 

 

توجه ! باید متغیر ها را با توجه به گنجایششان طبق جدول مقدار دهی کنیم . در غیر اینصورت محاسباتمان به هم خواهد خورد .

 

- می توانیم متغیر را با استفاده از نماد های # و $ هم ایجاد کنیم بعنوان مثال به عبارت زیر توجه کنید .

 

"strText$ = "Total Is 57

 

در این عبارت متغیری با نام $strText از نوع String تعریف شد و عبارت Total Is 57 بین دو نماد " و " در $strText ذخیره شد . همانطور که قبلا گفته شد متغر هایی از نوع String می توانند عبارات کاراکتری را در خود ذخیره کنند .

 

از کاراکتر # مانند مثال زیر برای ایجاد متغییر از نوع عدد صحیح دارای اعشار ( ممیزدار Real ) ، می توان استفاده کرد .

 

Number# = 12.45

 

در این عبارت متغیری با نام  #Number از نوع عدد صحیح ( دارای اعشار یا همان Real Number ) ایجاد گردید و مقدار داخل آن 12.45 می باشد .

 

استفاده ی عملی از متغیر ها :

برنامه ی زیر سن افراد را با استفاده از عدد 1387 (سال 1387 ) و تاریخ تولد ( مثلا 1350 ) محاسبه و نمایش می دهد .

 

intYear = 1387

worSen As Word = 1350

YourSen = intYear – worSen

Print YourSen

Wait Key

 

برنامه شامل 5 خط می باشد . طبق معمول DarkBasic برنامه را خط به خط از بالا به پایین اجرا می کند . طبق گفته های پیشین خط اول به DarkBasic متغیری با نام intYear معرفی می کند و مقدار 1387 را توسط علامت = به آن اختصاص می دهد و چون نوع متغیر را مشخص نکردیم بطور خودکار Integer در نظر گرفته می شود که گنجایش آن طبق جدول بین 2147483648- تا 2147483647 می باشد . سپس در خط دوم متغیری با نام worSen از نوع Word مشخص کردیم که گنجایش آن طبق جدول بین 0 تا 65535 می باشد و توسط علامت = مقدار 1350 را در آن ریختیم . در خط سوم متغیر YourSen بطور خودکار از نوع Integer ایجاد و همان زمان مقدار داخل متغیر با نام worSen از مقدار داخل متغیر با نام intYear توسط نماد – کم شد و داخل متغیر با نام YourSen ریخته شد و DarkBasic محاسبات عددی داخل متغیر ها را بصورت معادله حل کرد و در خط چهارم دستور Print که جزء دستورات اصلی DarkBasic می باشد ، مقدار داخل متغیر YourSen را چاپ کرد . در خط پنجم دستور Wait Key مفسر DarkBasic را معطل نگه می دارد تا ما حاصل کارمان را ببینیم . همانطور که قبلا گفته بودیم دلیل استفاده از دستور Wait Key این است که جلوی خروج از اجرای برنامه را بگیرد . در نتیجه Wait Key برنامه را تا زمانی که کلیدی فشرده نشود ، منتظر نگه می دارد .

 

سیستم محاسبات معادلات ریاضی در DarkBasic

قبلا در مبحث ریاضیات با معادله آشنا شدیم . معادلات متشکل از اعداد ( مانند 10 یا 75.90 یا هر عدد دیگر ) و متغیر ها ( مانند X ، Y و یا هر عبارت دیگری ) ، و همچنین علامات ( عملگرهایی مانند + ، - و دیگر علائم ) و توابع ریاضی میباشند . مانند معادله ی زیر :

 

X + 10 = 3X - 10

 

با حل این معادله ، حاصل X عدد 10 می شود . در DarkBasic معادله ها را باید به شکل خاصی نوشته شود . همانطور که قبلا گفته شد ، باید برای ارتباط با هر فردی زبان گفتگو با او را بلد بود . در این زبان مانند سایر زبان های برنامه نویسی قسمت راست علامت = محاسبه شده و حاصل به سمت چپ = ریخته می شود . یعنی در این زبان باید معادلات مور نظر طوری طراحی شود تا DarkBasic بتواند قسمت راست تساوی را محاسبه و مقدار آن را تنها به یک متغیر در سمت چپ بریزد . یعنی عبارت را بصورت زیر باشد تا DarkBasic آن را محاسبه کند . مانند عبارات زیر :

 

A = 10

B = 90

X = A + B * 1000

 

نکته : در هر معادله تنها یک علامت مساوی ( = ) باید وجود داشته باشد .

 

عملگر ها ( Operators ) :

عملگر ها علائم یا عباراتی هستنند مانند = و + و / و یا  Andو Or و > و =< و ... که هر کدام عملی بر روی اعداد ، کاراکتر ها ، متغیر ها و همچنین معادلات و عبارات انجام می دهند ، مانند عملیات ریاضی . همچین عملگر ها به مقایسه درستی و نادرستی معادلات و مقادیر اعداد و متغیر ها نیز می پردازند .

 

1 - عملگر های حسابی :

عملگر های حسابی برای انجام محاسبات ریاضی بر روی اعداد و متغیر های عددی بکار می روند که عبارتند از :

 

1 – الف : عملگر ^ ( توان )

عملگر ^ عددی را به توان عددی دیگر می رساند . مانند دستورالعمل زیر :

 

Result = Number1 ^ Number2

 

طبق این دستورالعمل ، عدد Number1 به توان عدد Number2 می رسد و حاصل آن در متغیر Result ریخته می شود . مانند مثال زیر :

 

Adad = 3.5 ^ 2

 

در این مثال اگر 3.5 به توان 2 برسد حاصل آن برابر 12.25 خواهد بود . پس اگر متغیر Adad از نوع عدد طبیعی باشد ( Integer ، Boolean ، Byte ، Word ، Dword و Double Integer ) عدد 12 در آن ذخیره می شود و اگر متغیر Adad از نوع عدد صحیح باشد ( Real و Double Float ) عدد 12.25 در آن ذخیره می شود . پس زمان استفاده از عملگر ها باید به نوع متغیری که عدد داخل آن ریخته می شود ، توجه داشته باشیم . 

 

توجه ! بهتر است دستورات را مانند مثال زیر آزمایش کنیم .

 

Adad = 3 ^ 2

Print Adad

Wait Key

 

توجه ! باید بین دستورات ، متغیر ها و عبارات و علائم موجود بین آنها فاصله ( استفاده از دکمه ی Space جهت ایجاد فضای خالی ) بگذاریم . در غیر اینصورت دستور برای برنامه قابل فهم نخواهد بود . مثلا مثال بالا را بصورت زیر ننویسیم :

 

Adad=3^2

PrintAdad

WaitKey

 

1 – ب : عملگر * ( ضرب )

عملگر * دو عدد را در هم ضرب می کند . مانند دستورالعمل زیر :

 

Result = Number1 * Number2

 

طبق این دستورالعمل ، دو عدد Number1 و Number2 در هم ضرب شده و حاصل آن در متغیر Result ریخته خواهد شد . مانند عبارت زیر :

 

Number = 4 * 76

 

در این مثال حاصل ضرب 4 در 76 برابر  304 می باشد . پس اگر متغیرمان از نوع Byte باشد ، طبق جدول متغیر ها محدوده ای بین 0 و 255 داشته باشد عدد 304 در آن به درستی ذخیره نخواهد شد . پس باید زمان استفاده از عملگر ها به محدوده ی ( گنجایش ) متغیر ها توجه داشته باشیم . به عبارتی دیگر پیش بینی کنیم که چه عددی در متغیر ریخته خواهد شد . آیا متغیر گنجایش ذخیره ی عدد حاصل را دارد یا نه ؟ اگر گنجایش آن را نداشته باشد ، به جای آن متغیری با گنجایش بالاتر را انتخاب می کنیم .

 

1 – ج : عملگر / ( تقسیم )

عملگر / عددی را بر عدد دیگر تقسیم می کند . مانند دستورالعمل زیر :

 

Result = Number1 / Number2

 

طبق این دستورالعمل ، عدد Number1 تقسیم بر Number2 می شود و حاصل آن در متغیر Result ریخته خواهد شد . مانند مثال زیر :

 

Adad = 5 / 2

 

در این مثال حاصل تقسیم 5 بر 2 برابر 2.5 می باشد . پس اگر متغیر Adad از نوع عدد طبیعی باشد ( Integer ، Boolean ، Byte ، Word ، Dword و Double Integer ) عدد 2 در آن ذخیره می شود و اگر متغییر Adad از نوع عدد صحیح باشد ( Real و Double Float ) عدد 2.5 در آن ذخیره خواهد شد .

توجه ! زمان استفاده از تقسیم به ترتیب قرار گرفتن دو عدد دقت داشته باشید . در مثال گفته شده عدد 5 بر دو تقسیم شد و حاصل آن 2.5 می باشد . ولی اگر جای آن دو را عوض کنیم ، یعنی اگر 2 سمت چپ علامت / و 5 سمت راست علامت / باشد 2 بر 5 تقسیم می شود و حاصل آن 0.4 خواهد بود . مانند نمونه ی زیر :

 

Adad = 2 / 5

 

1 – د : عملگر + ( جمع )

عملگر + عددی را با عدد دیگر جمع می کند . مانند دستورالعمل زیر :

 

Result = Number1 + Number2

 

طبق این دستورالعمل ، عدد Number1 با عدد Number2 جمع می شود و حاصل آن در متغیر Result ریخته خواهد شد . مانند مثال زیر :

 

Adad = 5 + 2.5

 

در این مثال حاصل جمع 5 با 2.5 برابر 7.5 می باشد . پس اگر متغیر Adad از نوع عدد طبیعی باشد ( Integer ، Boolean ، Byte ، Word ، Dword و Double Integer ) عدد 7 در آن ذخیره می شود و اگر متغییر Adad از نوع عدد صحیح باشد ( Real و Double Float ) عدد 7.5 در آن ذخیره می شود .

 

عملگر + علاوه بر جمع میان اعداد ( همچنین متغیر ها ) توانایی اتصال میان کاراکتر ها ( عبارات متنی ) را هم دارد . مانند دستورالعمل زیر :

 

Result = Text1 + Text2

 

طبق این دستورالعمل ، عبارت Text1 به عبارت Text2 متصل می شود و حاصل آن در متغیر Result ریخته خواهد شد . مانند مثال زیر :

 

"Example$ = "Thank " + "You

 

در این مثال عبارت Thank با عبارت You متصل و حاصل آن یعنی Thank You در متغیر $Example ذخیره خواهد شد .

 

توجه ! عبارات کاراکتری به ترتیب ، از سمت چپ به راست به هم متصل می شوند .

 

1 – ه : عملگر - ( کسر )

عملگر - عددی را از عدد دیگر کسر می کند . مانند دستورالعمل زیر :

 

Result = Number1 - Number2

 

طبق این دستورالعمل ، عدد Number2 از عدد Number1 کسر می شود و حاصل آن در متغیر Result ریخته خواهد شد . مانند مثال زیر :

 

Adad = 6 – 2.5

 

در این مثال عدد 2.5 از عدد 6 کسر و برابر 3.5 می باشد . پس اگر متغیر Adad از نوع عدد طبیعی باشد ( Integer ، Boolean ، Byte ، Word ، Dword و Double Integer ) عدد 3 در آن ذخیره می شود و اگر متغییر Adad از نوع عدد صحیح باشد ( Real و Double Float ) عدد 3.5 در آن ذخیره می شود .

 

توجه ! زمان استفاده از کسر به ترتیب قرار گرفتن دو عدد دقت داشته باشید . در مثال گفته شده عدد 2.5 از 6 کسر شد و حاصل آن 3.5 می باشد . ولی اگر جای آن دو را عوض کنید یعنی اگر 2.5 سمت چپ علامت - و 6 سمت راست علامت - باشد 6 از 2.5 کسر می شود و حاصل آن 3.5- خواهد بود . مانند نمونه ی زیر :

 

Adad = 2.5 - 6

 

1 – و : عملگر Mod ( باقیمانده )

عملگر Mod عددی را بر عدد دیگر تقسیم کرده سپس باقیمانده ی دو عدد را حساب می کند . مانند دستورالعمل زیر:

 

Result = Number1 Mod Number2

 

طبق این دستور العمل ، عدد Number1 تقسیم بر Number2 می شود و باقیمانده ی حاصل در متغیر Result ریخته خواهد شد . مانند مثال زیر :

 

 Adad = 12 Mod 4.3

 

در این مثال حاصل تقسیم 12 بر 4.3 برابر است با 2 و باقیمانده ی آن یعنی 3.4 در متغیر Adad ریخته می شود . پس اگر متغیر Adad از نوع عدد طبیعی باشد ( Integer ، Boolean ، Byte ، Word ، Dword و Double Integer ) عدد 3 در آن ذخیره می شود و اگر متغیر Adad از نوع عدد صحیح باشد ( Real و Double Float ) عدد 3.4 در آن ذخیره خواهد شد .



نظرات شما عزیزان:

نام :
آدرس ایمیل:
وب سایت/بلاگ :
متن پیام:
:) :( ;) :D
;)) :X :? :P
:* =(( :O };-
:B /:) =DD :S
-) :-(( :-| :-))
نظر خصوصی

 کد را وارد نمایید:

 

 

 

عکس شما

آپلود عکس دلخواه:







درباره وبلاگ


به وبلاگ من خوش آمدید
آخرین مطالب
پيوندها

تبادل لینک هوشمند
برای تبادل لینک  ابتدا ما را با عنوان آموزش ساخت بازی 3D ( سه بعدی ) به زبان Basic با دارک بیسیک D و آدرس darkbasic.LXB.ir لینک نمایید سپس مشخصات لینک خود را در زیر نوشته . در صورت وجود لینک ما در سایت شما لینکتان به طور خودکار در سایت ما قرار میگیرد.





نويسندگان


آمار وب سایت:  

بازدید امروز : 1
بازدید دیروز : 0
بازدید هفته : 1
بازدید ماه : 243
بازدید کل : 99613
تعداد مطالب : 24
تعداد نظرات : 3
تعداد آنلاین : 1